/*
 * @Author: your name
 * @Date: 2020-08-01 07:13:53
 * @LastEditTime: 2020-08-01 10:54:13
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: /Projects/linux/Program/客服系统/include/online_ustom_list.h
 */ 
#ifndef _ONLINE_CUSTOM_LIST_H_
#define _ONLINE_CUSTOM_LIST_H_
/********头文件定义************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/********结构体定义************/
typedef struct onlineCustomNode{

	char *id;										//用户ID									
	char *name;										//用户名
	int socketfd;									//在线用户套接字
	struct onlineCustomNode *next;
}ONLINECUSTOMNODE;
/**************接口函数声明**************/
/*
	功能：根据id，和name,socketfd创建节点
	参数：id：用户的id， name：用户的名字 socketfd:和用户绑定的套接字
	返回值：节点指针
	作者：ljj
	时间：2020/8/1
*/
ONLINECUSTOMNODE *creat_onlineCustomNode_list();
/*
	功能：根据id，和name,socketfd创建节点,并且加入链表
	参数：id：用户的id， name：用户的名字 socketfd:和用户绑定的套接字
	返回值：无
	作者：ljj
	时间：2020/8/1
*/
void add_onlineCustomNode(ONLINECUSTOMNODE* head, const char *id, const char *name, int socketfd);
/*
	功能：根据用户id账号查找节点
	参数：head：链表头指针， id:用户id账号
	返回值：查找到的节点指针，查找不到返回NULL
	作者：ljj
	时间：2020/8/1
*/
ONLINECUSTOMNODE *find_onlineCustomNode_by_id(ONLINECUSTOMNODE* head, const char *id);
/*
	功能：根据id账号删除节点
	参数：head：链表头指针， id:用户id账号
	返回值：-1：删除失败   0:删除成功
	作者：ljj
	时间：2020/8/1
*/
int del_onlineCustomNode_by_id(ONLINECUSTOMNODE* head, const char *id);
/*
	功能：摧毁链表
	参数：head：链表头指针
	返回值：无
	作者：ljj
	时间：2020/8/1
*/
void destory_onlineCustomNode_list(ONLINECUSTOMNODE **head);

/*
	功能：打印节点信息id 和 name
	参数：head:头节点指针
	返回值：无
	作者：ljj
	时间：2020/8/1
*/
void display_onlineCustomNode_all_basic_information(ONLINECUSTOMNODE *head);


#endif